package chapter08_class

/**
 * Created with IntelliJ IDEA.
 * ClassName: Test13_Object
 * Package: chapter08_class
 * Description:
 * User: fzykd
 *
 * @Author: LQH
 *          Date: 2023-07-03
 *          Time: 20:06
 */

//伴生对象
object Test13_Object {

  def main(args: Array[String]): Unit = {
//    val stu = new Student13("bob",20)
//    stu.info

    //并且创建的时候 可以直接省略apply方法
    val stu1 = Student13("alice",10)
    stu1.info
  }
}

//通过反编译 得出 伴生类的东西在伴生对对象当中 伴生对象的东西在$.class当中
class Student13 private(val name: String, val age: Int) {

  def info = {
    println(s"name: $name , age: $age , ${Student13.school}")
  }

}

object Student13 {
  //伴生对象 名字要和 类名一样 就相当于是静态的
  val school: String = "西南财经大学"

  //伴生对象的apply方法 可以不使用new创建对象
  //和伴生类相伴相生 和 伴生类之间的属性和方法可以相互调用
  def apply(name:String,age:Int):Student13 = new Student13(name,age)

}